package com.palmshop.online.controller;

import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.palmshop.online.entity.PalmResult;
import com.palmshop.online.entity.ShoppingCart;
import com.palmshop.online.service.BasketService;

/**
 * 购物车相关的controller
 * 用于实现与购物车相关的操作
 * 方法顺序：增删改查
 * @author quan
 *
 */
@Controller
@RequestMapping("/basket")
public class BasketContorller {

	@Resource
	private BasketService service;//service 注解

	/* >>>>>>>>购物车>>>>>>>>>>>>>>>>>>>>>> */

	/**
	 * 向购物车中添加一条新的记录信息
	 * @param goodsBarcode：商品条码
	 * @param cusUnique：用户唯一性标识
	 * @param shoppingCartCount：添加的商品数量
	 * @param shopUnique：店铺的唯一性标识
	 * @param cusFlag：是否游客标记0-普通用户 1-游客
	 * @return json
	 */
	@RequestMapping("/addBasket.do")
	@ResponseBody
	public PalmResult addBasket(String goodsBarcode, String cusUnique,
			Integer shoppingCartCount,String shopUnique,Integer cusFlag) {
		ShoppingCart basket = new ShoppingCart();
		basket.setCusUnique(cusUnique);
		basket.setGoodsBarcode(goodsBarcode);
		basket.setShoppingCartCount(shoppingCartCount);
		basket.setShopUnique(shopUnique);
		basket.setShoppingCartFlag(cusFlag);
		return service.addBasket(basket);
	}

	/**
	 * 根据购物车id删除一条对应的信息
	 * 
	 * @param basketId：购物车信息的id
	 * @return json
	 */
	@RequestMapping("/deleteBasket.do")
	@ResponseBody
	public PalmResult deleteBasket(Integer basketId) {
		return service.deleteBasket(basketId);
	}

	/**
	 * 根据购物车id修改对应的商品数量
	 * @param shoppingCartCount:要修改的目标数量
	 * @param shoppingCartId：购物车信息的id
	 * @return json
	 */
	@RequestMapping("/updateShoppCartById.do")
	@ResponseBody
	public PalmResult updateShoppCartById(Integer shoppingCartCount,
			Integer shoppingCartId) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("shoppingCartCount", shoppingCartCount);
		map.put("shoppingCartId", shoppingCartId);
		return service.updateShoppCartById(map);
	}

	/**
	 * 根据用户的Id和商铺的唯一性标识查询对应的购物车中商品信息
	 * @param cusId：用户id
	 * @param shopUnique:店铺唯一性标识
	 * @return json
	 */
	@RequestMapping("/findBasketById.do")
	@ResponseBody
	public PalmResult findBasketById(String cusId,String shopUnique) {
		Map map=new HashMap();
		map.put("cusId", cusId);
		map.put("shopUnique", shopUnique);
		return service.findBasketById(map);
	}
	

	/**
	 * 根据购物车的id数组查询购物车中的商品信息
	 * @param basketIds：购物车id数组
	 * @return json
	 */
	@RequestMapping("/findBasketByIds.do")
	@ResponseBody
	public PalmResult findBasketByIds(Integer[]basketIds){
		return service.findBasketByIds(basketIds);
	}
	
	/**
	 * app使用
	 * 根据购物车id查询订单信息
	 * @param basketIdString：购物车id拼成的字符串
	 * @return json
	 */
	@RequestMapping("/findBasketByIdString.do")
	@ResponseBody
	public PalmResult findBasketByIdString(String basketIdString){
		String[] ids=basketIdString.split(";");
		Integer[] basketIds=new Integer[ids.length];
		for(int i=0;i<ids.length;i++){
			
			basketIds[i]=Integer.parseInt(ids[i]);
		}
		
		return service.findBasketByIds(basketIds);
	}
	

	/**
	 * 根据用户id和商铺唯一性标识查询购物车中的商品数量
	 * @param cusId:用户id
	 * @param shopUnique:店铺唯一性标识
	 * @return json
	 */
	@RequestMapping("/findSumBasket.do")
	@ResponseBody
	public PalmResult findSumBasket(String cusId,String shopUnique) {
		Map map=new HashMap();
		map.put("cusId", cusId);
		map.put("shopUnique", shopUnique);
		return service.findSumBasket(map);
	}

	/* >>>>>>end 购物车 end>>>>>>>>>>>>>>>>> */
}
